A typical Media-on-Demand (MOD) network system, which can be utilized in the present invention, is illustrated in FIG. 1. In FIG. 1, MOD system 10 includes a media server 7 connected to a plurality of clients 5 over a shared transmission medium 8. MOD system 10 is applicable to supporting the transmission of data streams on a local area network (LAN), a wide area network (WAN) or on a stand-alone system wherein a video storage system is accessed to retrieve or store data belonging to a plurality of data streams. For example, in the stand-alone system, the data streams may be retrieved from data storage for display locally on a monitor.
A video storage system (not shown) for storing a plurality of video files is connected to server 7. Illustratively, the video storage system is a disk storage system. However, other types of storage systems may be used such as tape decks, laser disks, CD ROMs, etc. A plurality of the clients 5 typically wish to access the disk storage system simultaneously to retrieve video files stored in the disk storage system (or to write video files into the disk storage system). As indicated above, the invention is also applicable to a stand-alone system wherein a disk storage system is accessed to retrieve streams for display on a local monitor.
In MOD system 10, any client 5 can select whatever the user wishes to view. Media server 7 supports real-time media to clients through the network, including movies, television programs, home shopping, interactive commercials, and home and business information services, such as video-based real-estate services.
For server 7 to support such real-time media, the server typically integrates various types of Quality of Service (QoS) criteria within one system framework. For example, in an asynchronous transfer mode (ATM) system, the QoS sets the tolerances, i.e. performance requirements, for the data packet cell loss ratio, the cell transfer delay, and the delay jitter.
To meet the performance requirements, an MOD server needs flexibility to utilize the available resources. Such resources include disk storage I/O, network bandwidth frequency, the number of I/O ports with respect to time, etc. In order to achieve the target performance requirements (e.g., having a large number of clients simultaneously requesting different or identical data, while providing a continuous smooth transmission of requested data streams), the system management of the media server allocates numerous resources according to a number of predetermined QoS criteria. To implement the QoS, the system management performs a number of tasks when a new data request is generated.
First, the system management performs a resource evaluation, where the system evaluates the current available resources. Next, the system management optimizes the resources allocated to all existing streams by reallocating or adjusting the current resources if necessary. Finally, the system management allocates the required resource to the new request and updates the available resource information.
As stated, a critical issue to the success of providing continuous media is to transmit streams of the requested data smoothly. In other words, the period between adjacent data streams of the requested data has to be within a certain time interval. Otherwise, audio or visual breaks will occur causing "jitters". Thus, conventional algorithms for retrieving and storing data are highly time-dependent. To guarantee that the QoS criteria are met (to avoid jitters), the output rate of each stream must be dynamically changeable.
There are two basic approaches to supporting continuous media in operating file systems. In the first approach, the organization of audio and video files are altered and optimized, especially for distributed hierarchical storage. The basic idea is to improve the throughput and capacity by storing the data of each audio and video file on several volumes. Disk I/O bandwidth is maximized by striping, while seek times are minimized by grouping and sorting.
In the second approach, the organization of the data files on the storage disk is not altered as the necessary real-time support is provided through complex and specific disk-scheduling algorithms. Additionally, buffers may be provided to smooth the flow of the data streams.
No matter which approach is adopted, neither of the above file systems can guarantee that the data streams will be transmitted at a constant data rate. Additionally, the algorithms are very complex and consume a large amount of resources. Due to these drawbacks, a new method is herein proposed that substantially guarantees a constant data rate for each data stream with minimal complexity.
It is therefore an object of the present invention to overcome the disadvantages of the prior art.